package br.com.Bolao.application.controller;

import br.com.Bolao.application.dao.usuarios.UsuarioDAO;
import br.com.Bolao.application.util.DataUtil;
import br.com.Bolao.model.Usuario;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.security.Identity;

/**
 *
 * @author mucceli
 */
@Scope(ScopeType.CONVERSATION)
@Name("viewRenderAction")
public class ViewRenderController {

    @In
    private Identity identity;
    @In
    private UsuarioDAO usuarioDAO;

    public boolean RenderButaoBloquear(Usuario usuario) {
        if (usuario.isPagamento()) {
            return true;
        } else {
            return false;
        }
    }

    public boolean RenderButaoLiberar(Usuario usuario) {
        if (usuario.isPagamento()) {
            return false;
        } else {
            return true;
        }
    }

    public boolean RenderMenuCadastroUsuario(boolean usuarioIsLogado) {
        if (usuarioIsLogado) {
            String nomeUsuario = identity.getCredentials().getUsername();
            Usuario usuario = usuarioDAO.obterPorUsuario(nomeUsuario);
            if (usuario.getAcesso() == 1) {
                return true;
            } else {
                return false;
            }
        }else{
            return true;
        }
    }

    public boolean RenderMenuPagamento(boolean usuarioIsLogado){
         if (usuarioIsLogado) {
            String nomeUsuario = identity.getCredentials().getUsername();
            Usuario usuario = usuarioDAO.obterPorUsuario(nomeUsuario);
            if (usuario.isPagamento()) {
                return false;
            } else {
                return true;
            }
        }else{
            return false;
        }
    }

     /**
     * Método que habilita/desabilita botão "apostar" de acordo com a data
     * inicio do torneio.
     * Após a data do jogo não é permito alterar as apostas.
     * @return boolean true = Válido ou false = Inválido
     */
    public boolean validarDataApostaCampeoes(){
        DataUtil dataUtil = new DataUtil();
        Date dataFinalFase = new Date("2010-06-10");
        Calendar dataFinalPrimeiraFase = GregorianCalendar.getInstance();
        dataFinalPrimeiraFase.setTime(dataFinalFase);

        Calendar dataAtual = GregorianCalendar.getInstance();
        dataAtual.setTime(dataUtil.obtemDataAtual());

        if (dataAtual.before(dataFinalPrimeiraFase)) {
            return true;
        } else {
            return false;
        }
    }
}
